Angular CLI Workspaces একটি কনসেপ্ট যা একাধিক Angular অ্যাপ্লিকেশন এবং লাইব্রেরি একটি একক প্রজেক্টে পরিচালনা করার সুযোগ দেয়। এটি বিশেষভাবে Monorepo আর্কিটেকচারে সহায়ক, যেখানে একাধিক অ্যাপ্লিকেশন বা লাইব্রেরি একসাথে পরিচালিত হয় এবং তাদের মধ্যে পুনঃব্যবহারযোগ্য কোড শেয়ার করা যায়। Angular CLI Workspaces মূলত multiple apps বা libraries তৈরি এবং পরিচালনা করার জন্য ব্যবহৃত হয়।
Angular CLI দিয়ে একটি নতুন Workspace তৈরি করতে হলে, প্রথমে ng new
কমান্ডটি ব্যবহার করতে হবে, তবে এখানে --create-application
অপশনটি ব্যবহার করা যাবে না। কারণ Workspaces তৈরি করার সময় আপনি নির্ধারণ করতে পারবেন যে আপনার প্রজেক্টে একটি অ্যাপ্লিকেশন থাকবে কি না।
ng new my-workspace --create-application=false
এটি একটি নতুন Angular Workspace তৈরি করবে, যেখানে আপনি ভবিষ্যতে একাধিক অ্যাপ্লিকেশন এবং লাইব্রেরি যোগ করতে পারবেন।
এটি নিম্নলিখিত ফোল্ডার স্ট্রাকচার তৈরি করবে:
my-workspace/
├── projects/
├── angular.json
├── package.json
├── tsconfig.json
├── tslint.json
একটি Angular Workspace তে একাধিক অ্যাপ্লিকেশন এবং লাইব্রেরি রাখা যেতে পারে। অ্যাপ্লিকেশন এবং লাইব্রেরি অ্যাড করতে, Angular CLI এর ng generate
বা ng g
কমান্ড ব্যবহার করতে হয়।
আপনি Workspace এ নতুন অ্যাপ্লিকেশন তৈরি করতে পারেন:
ng generate application app-name
অথবা:
ng g app app-name
এটি একটি নতুন Angular অ্যাপ্লিকেশন তৈরি করবে যা projects/
ফোল্ডারে রাখা হবে।
Workspace এ নতুন লাইব্রেরি তৈরি করতে:
ng generate library library-name
অথবা:
ng g lib library-name
এটি একটি লাইব্রেরি তৈরি করবে যা অন্যান্য অ্যাপ্লিকেশনে রিইউজ করা যাবে।
Workspace এ একাধিক অ্যাপ্লিকেশন এবং লাইব্রেরি তৈরি করা হলে, Angular CLI এর মাধ্যমে প্রতিটি অ্যাপ্লিকেশন বা লাইব্রেরি আলাদাভাবে বিল্ড, সার্ভ, টেস্ট করা সম্ভব। উদাহরণস্বরূপ:
ng build app-name
ng build library-name
ng serve app-name
ng test library-name
এইভাবে, আপনি একটি Workspace এর মধ্যে বিভিন্ন অ্যাপ্লিকেশন এবং লাইব্রেরির উপর কাজ করতে পারবেন এবং তাদের নির্দিষ্ট প্রক্রিয়াগুলি পরিচালনা করতে পারবেন।
Angular CLI Workspace কনফিগারেশনটি মূলত angular.json
ফাইলে থাকে। এই ফাইলটি Workspace-এর সমস্ত অ্যাপ্লিকেশন, লাইব্রেরি এবং তাদের কনফিগারেশন সংক্রান্ত তথ্য ধারণ করে। এখানে আপনি অ্যাপ্লিকেশন এবং লাইব্রেরির জন্য বিভিন্ন সেটিংস যেমন বিল্ড কনফিগারেশন, সার্ভিং পোর্ট, টেস্ট কনফিগারেশন ইত্যাদি দেখতে পাবেন।
{
"projects": {
"app-name": {
"projectType": "application",
"root": "projects/app-name",
"sourceRoot": "projects/app-name/src",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/app-name",
"index": "projects/app-name/src/index.html",
"main": "projects/app-name/src/main.ts",
"polyfills": "projects/app-name/src/polyfills.ts",
"tsConfig": "projects/app-name/tsconfig.app.json",
"assets": [
"projects/app-name/src/favicon.ico",
"projects/app-name/src/assets"
]
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "app-name:build"
}
}
}
}
}
}
এখানে, app-name
অ্যাপ্লিকেশনের জন্য কনফিগারেশন রয়েছে, যেখানে তার বিল্ড এবং সার্ভ অপশন উল্লেখ করা হয়েছে।
Angular CLI Workspaces বড় Angular প্রজেক্টে একাধিক অ্যাপ্লিকেশন এবং লাইব্রেরি পরিচালনার জন্য খুবই কার্যকরী। এটি Monorepo আর্কিটেকচারের সুবিধা প্রদান করে, যেখানে বিভিন্ন অ্যাপ্লিকেশন এবং লাইব্রেরি একত্রে কাজ করতে পারে, কোড শেয়ারিং এবং রিইউজকে সহজ করে তোলে। Angular CLI Workspaces ডেভেলপারদের জন্য প্রজেক্ট ম্যানেজমেন্ট এবং স্কেলিং প্রক্রিয়া আরও সহজ করে দেয়।
Read more